/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package rna;

import java.util.ArrayList;

/**
 *
 * @author igo
 */

/**
 * @Descrição
 * Essa camada poussi como atributos: as entradas, ja que as entradas dos neuronios
 * de uma determinada camada são iguais; os neuroniios, que irão compor a camada;
 * e o vetor de saida da camada, que será composto pelas saidas dos neuronios da mesma;
 * o número de neuronios da camada.
 *
 * Quando uma camada é criada, é necessário informar a quantidade de neuronios
 * que a mesmo irá conter.
 * Necessário também chamar o método de criar neuronios.
 *
 * Para definir as entradas da mesma, é necessário utilizar o metodo setEntradas
 * e para definir o array de saidas, que será entrada de uma próxima camada, utiliza-se
 * o metodo setSaidas.
 *
 */

public class  Camadas {
    ArrayList<Neuronio> neuronios = new ArrayList<Neuronio>();

    double[] entrada;
    double[] saidas;
    int numeroNeuronios;

       public Camadas(int qntNeuronios){
        numeroNeuronios = qntNeuronios;
        //neuronios = new ArrayList<Neuronio>();
    }

    public ArrayList<Neuronio> getNeuronios() {
        return neuronios;
    }

    public void setNeuronios(ArrayList<Neuronio> neuronios) {
        this.neuronios = neuronios;
    }

       public void criarNeuronios(){
//           System.out.println("Entrei no Criar neuronio");
//           System.out.println("Entrei no Criar neuronio - São " + numeroNeuronios + " neuronios");
        for(int i=0;i<numeroNeuronios;i++){
//            System.out.println("Entrei no Criar neuronio - No FOR");
            Neuronio neuronio = new Neuronio();
            neuronio.setCamada(this);
            neuronios.add(neuronio);
        }
    }

    public int getNumeroNeuronios() {
        return numeroNeuronios;
    }

    public double[] getSaidas(){
        saidas = new double[numeroNeuronios];//quantidade de saida é igual ao numero de neuronios.
        for(int i=0; i<neuronios.size();i++){
            saidas[i] = neuronios.get(i).calcularSaida();
        }
        return saidas;
    }


    public void setEntradas(double[] entradas){
        entrada = entradas;
    }

    public double[] getEntradas(){
        return entrada;
    }
}